package com.aerozhonghuan.archive.config;

import com.aerozhonghuan.archive.entity.CommonConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DynamicDataSourceHolder {
    private static final Logger logger = LoggerFactory.getLogger(DynamicDataSourceHolder.class);
    private static final ThreadLocal<String> DYNAMIC_DATASOURCE_KEY = new ThreadLocal<>();

    /**
     * 设置/切换当前线程使用的数据源
     */
    public static void setDynamicDataSourceKey(String key) {
//        logger.info("切换数据源至：{}", key);
        DYNAMIC_DATASOURCE_KEY.set(key);
    }

    /**
     * 获取当前线程使用的数据源，如果没有设置则返回默认的archive数据源
     */
    public static String getDynamicDataSourceKey() {
        String key = DYNAMIC_DATASOURCE_KEY.get();
        return (key == null) ? CommonConstant.ARCHIVE : key;
    }

    /**
     * 清除当前线程中的数据源标识
     */
    public static void removeDynamicDataSourceKey() {
        logger.info("移除数据源：{}", DYNAMIC_DATASOURCE_KEY.get());
        DYNAMIC_DATASOURCE_KEY.remove();
    }
}
